// 获取带宽高的图片路径
export async function imageToInfoPath(ctx, src) {
	return await new Promise((resolve, reject) => {
		uni.downloadFile({
			url: src,
			success: (image) => {
				uni.getImageInfo({
					src: image.tempFilePath,
					success: (infoRes) => {
						resolve(infoRes)
					},
					fail: (e) => {
						reject(e)
					}
				})
			},
			fail: (e) => {
				reject(e)
			}
		})
	})
}

// 绘制圆角图片矩形
export function imageRect(ctx, img, x, y, w, h, r, imgObj, isOffset = true) {
	console.log(img)
	// 截取图片防止图片变形
	let {
		width,
		height
	} = imgObj
	let imgScale = width / height // 图片的宽高比
	let imgW, imgH // 计算后得到图片的宽高
	let offsetW, offsetH // 绘图时需要偏移的坐标 是用来 让图片居中的 就是截取中间部分 不是从 0 0 开始截取

	imgH = h;
	imgW = imgScale * imgH;
	offsetW = (imgW - w) / 2;
	offsetH = 0 // 开始计算图片宽高 以及偏移坐标
	if (imgW < w) {
		imgW = w;
		imgH = imgW / imgScale;
		offsetH = (h) / 2;
		offsetW = 0
	}

	// 画一个图形
	if (w < 2 * r) r = w / 2;
	if (h < 2 * r) r = h / 2;
	ctx.beginPath();
	ctx.moveTo(x + r, y);
	ctx.arcTo(x + w, y, x + w, y + h, r);
	ctx.arcTo(x + w, y + h, x, y + h, r);
	ctx.arcTo(x, y + h, x, y, r);
	ctx.arcTo(x, y, x + w, y, r);
	ctx.closePath();
	ctx.strokeStyle = '#FFFFFF'; // 设置绘制圆形边框的颜色
	ctx.stroke();
	ctx.clip();
	if (isOffset) {
		ctx.drawImage(img, x - offsetW / 2, y - offsetH / 2, imgW, imgH);
	} else {
		ctx.drawImage(img, x, y, imgW, imgH);
	}
}
